CsmithEdge: more effective compiler testing by handling undefined behaviour less conservatively

نویسندگان

چکیده

Abstract Compiler fuzzing techniques require a means of generating programs that are free from undefined behaviour (UB) to reliably reveal miscompilation bugs. Existing program generators such as Csmith achieve UB-freedom by heavily restricting the form generated programs. The idiomatic nature resulting risks limiting test coverage they can offer, and thus compiler bugs discover. We investigate idea adapting existing fuzzers be less restrictive concerning UB, in practical setting C testing via new tool, CsmithEdge , which extends . probabilistically weakens constraints used enforce UB-freedom, no longer guaranteed UB-free. It then employs several off-the-shelf UB detection tools novel dynamic analysis (a) detect cases where exhibits (b) determine has been too conservative its use safe math wrappers guarantee for arithmetic operations, removing redundant ones. UB-free differential testing. non-UB-free still check under does not crash or hang. Our experiments on recent versions GCC, LLVM Microsoft Visual Studio show was able discover 7 previously unknown (5 already fixed response our reports) could found intensive using 2 compiler-hang were independently shortly before we considered reporting them.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Modeling Undefined Behaviour Semantics for Checking Equivalence Across Compiler Optimizations

Previous work on equivalence checking for synthesis and translation validation has usually verified programs across selected optimizations, disabling the ones that exploit undefined behaviour. On the other hand, modern compilers extensively exploit language level undefined behaviour for optimization. Previous work on equivalence checking for translation validation and synthesis yields poor resu...

متن کامل

HIV counseling and testing: less targeting, more testing.

American Journal of Public Health | June 2006, Vol 96, No. 6 962 | Editorials HIV Counseling and Testing: Less Targeting, More Testing Approximately 25% of persons infected with HIV nationwide remain undiagnosed. Identifying these individuals represents the biggest challenge for HIV control in the United States. More timely diagnosis of HIV can improve treatment and care of those infected with ...

متن کامل

More for Less - Getting More Clients by Broadcasting Less Data

Broadcasting is scalable in terms of served users but not in terms of served data volume. Additionally, waiting time deadlines may be difficult to uphold due to the data clutter, forcing the clients to flee the system. This work proposes a way of selecting subsets of the original data that ensure near-optimal service ratio. The proposed technique relies on the novel data compatibility distance,...

متن کامل

Learning More by Doing Less

A principal must decide whether to implement each of two independent proposals (e.g., earmark requests, policy reforms, grant funding) of unknown quality. Each proposal is represented by an agent who advocates by producing evidence about quality. Although the principal prefers the most-informative evidence, agents strategically choose less-informative evidence to maximize the probability the pr...

متن کامل

Teaching more by lecturing less.

We carried out an experiment to determine whether student learning gains in a large, traditionally taught, upper-division lecture course in developmental biology could be increased by partially changing to a more interactive classroom format. In two successive semesters, we presented the same course syllabus using different teaching styles: in fall 2003, the traditional lecture format; and in s...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

ژورنال

عنوان ژورنال: Empirical Software Engineering

سال: 2022

ISSN: ['1382-3256', '1573-7616']

DOI: https://doi.org/10.1007/s10664-022-10146-1